package cn.silver.module.workflow.bean;

import cn.silver.framework.mybatis.bean.BusBean;
import cn.silver.module.workflow.domain.WfModel;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author zhouxiaobo
 */
@Data
@NoArgsConstructor
@ExcelIgnoreUnannotated
@AutoMapper(target = WfModel.class)
@EqualsAndHashCode(callSuper = true)
@Schema(name = "ModelBean", title = "流程管理-流程模型管理")
public class ModelBean extends BusBean implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 流程类型
     */
    @Schema(title = "流程类型")
    private String type;
    /**
     * 流程分类
     */
    @Schema(title = "流程分类")
    private String category;
    /**
     * 工作流部署的发布主版本Id
     */
    @Schema(title = "工作流部署的发布主版本Id")
    private String publishId;
    /**
     * 最新发布时间
     */
    @Schema(title = "最新发布时间")
    private Date publishTime;
    /**
     * 流程定义的xml
     */
    @Schema(title = "流程定义的xml")
    private String bpmnXml;
    /**
     * 流程图类型
     */
    @Schema(title = "流程图类型")
    private String diagramType;
    /**
     * 绑定表单类型
     */
    @Schema(title = "绑定表单类型")
    private Integer bindFormType;
    /**
     * 流程类型
     */
    @Schema(title = "流程类型")
    private Integer flowType;
    /**
     * 在线表单的页面Id
     */
    @Schema(title = "在线表单的页面Id")
    private String pageId;
    /**
     * 在线表单Id
     */
    @Schema(title = "在线表单Id")
    private String defaultFormId;
    /**
     * 静态表单的缺省路由名称
     */
    @Schema(title = "静态表单的缺省路由名称")
    private String defaultRouterName;
    /**
     * 工单表编码字段的编码规则
     */
    @Schema(title = "工单表编码字段的编码规则")
    private String encodedRule;
    /**
     * 流程的自定义扩展数据
     */
    @Schema(title = "流程的自定义扩展数据")
    private String extensionData;
}
